Many Internet applications include transmission of large amounts of data from a single source to a plurality of destinations. These applications include, for example, video and audio conferencing and replicating databases and web sites. Using unicast transmission, such applications send a copy of each packet they generate to each of the subscribers separately. IP multicast allows transmission of the packets in a more bandwidth efficient manner. IP multicast may also be used in many-to-many transmission applications, such as in conference calls and distributed database applications.
In the IP multicast scheme, a source transmits multicast packets which carry a destination IP address which identifies the multicast group to which the packets belong. Routers which receive the multicast packets, generally transfer a single copy of the packet in each direction in which subscribers are currently situated.
An Internet group management protocol (IGMP) is used to keep the routers updated, for each layer-2 network to which the routers are connected, with the current multicast addresses for which at least one of the hosts of the layer-2 network is a subscriber. In each layer-2 network, a single router, generally with the lowest IP address, is selected as a querier which periodically sends query packets asking the hosts of the network to report the multicast groups from which they wish to receive packets. The routers connected to the layer-2 network keep track for each multicast address if any of the hosts of the layer-2 network is interested in receiving the packets of the multicast address. The IGMP protocol is described, for example, in W. Fenner, “Internet Group Management Protocol, Version 2”, RFC 2236, IETF 1997, the disclosure of which is incorporated herein by reference.
In addition, an IP multicast routing protocol is used to choose a distribution tree through which the multicast packets are delivered to the subscribers. The multicast protocol governs the behavior of the router upon receiving a multicast packet. This behavior includes determination of the interfaces through which the packet is forwarded, if at all. Generally, the multicast routing protocols select, for each layer-2 network, one router to be a representative router which will deliver the multicast packets to the subscribers of the layer-2 network. Generally, the selection is performed separately for each packet source of each multicast group. The packets of a specific multicast group from a specific source are referred to herein as belonging to a specific source group.
Some multicast routing protocols, e.g., distance vector multicast routing protocol (DVMRP), multicast open shortest path first (MOSPF) and protocol-independent multicast-dense mode (PIM-DM), assume that the subscribers are densely distributed throughout the network and that bandwidth is plentiful and accordingly use a broadcast and prune scheme. Other multicast routing protocols, e.g., core based trees (CBT) and protocol-independent multicast-sparse mode (PIM-SM), assume that the subscribers are sparsely distributed throughout the network and therefore use a registration scheme. Some of these protocols are described, for example, in D. Waitzman, et al., “Distance Vector Multicast Routing Protocol”, RFC 1075, IETF 1988; B. Fenner, et al., “Protocol Independent Multicast—Sparse Mode (PIM-SM): Protocol Specification (Revised)”, Internet draft, draft-ietf-pim-sm-v2-new-00, IETF, July 2000 and S. Deering, et al., “Protocol Independent Multicast Version 2 Dense Mode Specification”, Internet draft, draft-ietf-idmr-pini-dm-06.txt, IETF, Aug. 6, 1997, the disclosures of which documents are incorporated herein by reference.
Within each layer-2 network, a local process is used to deliver the multicast packets to the subscriber hosts, preferably without passing the multicast packets to non-subscriber hosts. To achieve this task, some switches have multicast filtering units which determine through which physical ports they should forward multicast packets. A method for performing multicast filtering is described, for example, in “Multicast Routing Domains and Multicast Host Membership Domains” a 3COM Technology paper available at //www.3com.com/technology/tech_net/white_papers/503050a.html, the disclosure of which is incorporated herein by reference.
Two major forwarding methods are used in packet based networks. Within layer-2 networks, packets are generally forwarded in layer-2 in a process referred to as bridging. The bridging in layer-2 is performed based on MAC addresses carried in a frame header attached to the packets. Between layer-2 networks, packets are forwarded in layer-3 in a process referred to as routing. The layer-3 routing is performed based on IP addresses carried in IP headers of the packets. Generally, the routing includes changing the source and/or destination MAC (layer-2) address of the frame including the packet. The packets generally include a time to live (TTL) field which indicates the maximal number of routers the packet may pass through. Each router which routes a packet usually reduces its TTL by one. Packets with a TTL of 1 or 0 are not routed, in order to prevent packets which entered infinite loops from eternally being forwarded. The bridging is generally performed by layer-2 switches and the routing is generally performed by routers. Layer-3 switches are switches which perform both layer-2 bridging and layer-3 routing. In order to support efficient multicast handling, layer-3 switches may include both multicast routing and multicast filtering capabilities. This adds to the complexity of layer-3 switches.
Many modern layer-2 and layer-3 switches support a feature called virtual local area networks (VLANs), which allows a single physical LAN to operate as though it were a plurality of LANs. Generally, packets entering physical LANs which support VLANs are tagged with a VLAN ID indicating the VLAN in which the packets are currently being forwarded. Packets having a specific VLAN ID are forwarded only through switch ports which support that VLAN. In order to forward packets between hosts belonging to different VLANs of the same physical LAN, the packets must be forwarded to a layer-3 switch (or a router) for routing (which includes changing the VLAN ID of the packets), although the source and destination computer are both located on the same physical layer-2 network infrastructure. An emerging standard for VLANs is described in “Draft Standard P802.1Q/D9, IEEE Standards for Local and Metropolitan Area Networks: Virtual Bridged Local Area Networks”, 1998, the disclosure of which is incorporated herein by reference.
Since the switches of a network consider the different VLANs as different LANs, IP multicast packets are distributed throughout the different VLANs independently of each other. This may cause bandwidth waste as illustrated in FIG. 1.
FIG. 1 is a schematic diagram of a network 20, illustrating a process of forwarding multicast packets known in the art. Network 20 includes two layer 3 switches 22A and 22B. It is assumed that switch 22A has a lower IP address and therefore is selected to route multicast packets between the VLANs of network 20. A link 28E connects switches 22A and 22B. A host 26A serves as a source for a specific multicast group and transmits multicast packets on a VLAN A. Hosts 26B, 26C and 26D, connected on VLANs B, C and D, through links 28B, 28C and 28D, respectively, are subscribers. The multicast packets pass in VLAN A along links 28A and 28E to switch 22A in which they pass routing to VLANs B, C and D. Three copies of each packet pass on link 28E, back to switch 22B, for each of VLANs B, C and D. The packets are then distributed by switch 22B to hosts 26B, 26C and 26D. This distribution of multicast packets is very wasteful in bandwidth.
It is noted that in sending unicast packets, for example from host 26A to host 26B, the packets are routed by a switch selected by host 26A according to its unicast table.